import time
import queue


def consumer(name):
    print('--->ready to eat humburger...')  # 一个消费者准备吃
    while True:
        new_humberger = yield  # # 没有send就挂起来，等相当于阻塞。有send给yield才能往下走；
        print('[%s] is eating humberger %s' % (name, new_humberger))  # 反复打印名字和接收的值
        time.sleep(5)


def producer():
    r = con.__next__()  # 进入con迭代器执行了第一遍，
    r = con2.__next__()
    n = 0
    while 1:  # 死循环
        time.sleep(5)  # 停一秒
        print('[producer] is making humberger %s and %s ' % (n, n + 1))  # 生产者已经做出来两个humberer ，如0号和1号
        con.send(n)  # 告诉你我已经做好了，通过send发给你
        con2.send(n + 1)
        n += 2  # 每两个两个地生成，如前一次是0和1，下次就是2和3


if __name__ == '__main__':
    con = consumer('c1')   # 一个消费者对象。con为迭代器对象，生成了两个对象而已，什么也没做，genatator object consumer
    con2 = consumer('c2')  # 消费者对象。genarator object consumer
    producer()
